home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / MPW Oberon 2.1168 / OInterfaces / Processes.mod < prev    next >
Encoding:
Text File  |  1995-08-07  |  5.0 KB  |  177 lines  |  [TEXT/MPS ]

  1. (*
  2.      File:        Processes.mod
  3.  
  4.      Contains:    Process Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Package:    Universal Interfaces 2.0 in “MPW Latest” on ETO #17
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs.applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. *)
  19.  
  20. (*$TAGS-*)
  21. (*$CALLING PASCAL*)
  22. MODULE Processes;
  23.  
  24. IMPORT SYSTEM, Types, Files, Events;
  25.  
  26. (* $PUSH*)
  27. (* $ALIGN MAC68K*)
  28. (* $LibExport+*)
  29.  
  30. TYPE
  31.     ProcessSerialNumber* = RECORD
  32.         highLongOfPSN*:            LONGINT;
  33.         lowLongOfPSN*:            LONGINT;
  34.     END;
  35.  
  36.     ProcessSerialNumberPtr* = POINTER TO ProcessSerialNumber;
  37.  
  38.  
  39. CONST
  40. (* Process identifier - Various reserved process serial numbers *)
  41.     kNoProcess*                    = 0;
  42.     kSystemProcess*                = 1;
  43.     kCurrentProcess*                = 2;
  44.  
  45. (* Definition of the parameter block passed to _Launch
  46.     Typedef and flags for launchControlFlags field *)
  47.     
  48. TYPE
  49.     LaunchFlags* = INTEGER;
  50.  
  51.  
  52. CONST
  53. (* Definition of the parameter block passed to _Launch *)
  54.     launchContinue*                = $4000;
  55.     launchNoFileFlags*            = $0800;
  56.     launchUseMinimum*            = $0400;
  57.     launchDontSwitch*            = $0200;
  58.     launchAllow24Bit*            = $0100;
  59.     launchInhibitDaemon*            = $0080;
  60.  
  61. (* Format for first AppleEvents.AppleEvent to pass to new process.  The size of the overall
  62.   buffer variable*: the message body immediately follows the messageLength *)
  63.  
  64. TYPE
  65.     AppParameters* = RECORD
  66.         theMsgEvent*:            Events.EventRecord;
  67.         eventRefCon*:            LONGINT;
  68.         messageLength*:            LONGINT;
  69.     END;
  70.  
  71.     AppParametersPtr* = POINTER TO AppParameters;
  72.  
  73. (* Parameter block to _Launch *)
  74.     LaunchParamBlockRec* = RECORD
  75.         reserved1*:                LONGINT;
  76.         reserved2*:                INTEGER;
  77.         launchBlockID*:            INTEGER;
  78.         launchEPBLength*:        LONGINT;
  79.         launchFileFlags*:        INTEGER;
  80.         launchControlFlags*:        LaunchFlags;
  81.         launchAppSpec*:            Files.FSSpecPtr;
  82.         launchProcessSN*:        ProcessSerialNumber;
  83.         launchPreferredSize*:    LONGINT;
  84.         launchMinimumSize*:        LONGINT;
  85.         launchAvailableSize*:    LONGINT;
  86.         launchAppParameters*:    AppParametersPtr;
  87.     END;
  88.  
  89.     LaunchPBPtr* = POINTER TO LaunchParamBlockRec;
  90.  
  91. (* Set launchBlockID to extendedBlock to specify that extensions exist.
  92.  Set launchEPBLength to extendedBlockLen for compatibility.*)
  93.  
  94. CONST
  95.     extendedBlock*                = $4C43;                        (* 'LC' *)
  96.     extendedBlockLen*            = 32;                            (* sizeof(LaunchParamBlockRec) - 12 *)
  97.  
  98. (* Definition of the information block returned by GetProcessInformation *)
  99.     modeDeskAccessory*            = $00020000;
  100.     modeMultiLaunch*                = $00010000;
  101.     modeNeedSuspendResume*        = $00004000;
  102.     modeCanBackground*            = $00001000;
  103.     modeDoesActivateOnFGSwitch*    = $00000800;
  104.     modeOnlyBackground*            = $00000400;
  105.     modeGetFrontClicks*            = $00000200;
  106.     modeGetAppDiedMsg*            = $00000100;
  107.     mode32BitCompatible*            = $00000080;
  108.     modeHighLevelEventAware*        = $00000040;
  109.     modeLocalAndRemoteHLEvents*    = $00000020;
  110.     modeStationeryAware*            = $00000010;
  111.     modeUseTextEditServices*        = $00000008;
  112.     modeDisplayManagerAware*        = $00000004;
  113.  
  114. (* Record returned by GetProcessInformation *)
  115.  
  116. TYPE
  117.     ProcessInfoRec* = RECORD
  118.         processInfoLength*:        LONGINT;
  119.         processName*:            Types.StringPtr;
  120.         processNumber*:            ProcessSerialNumber;
  121.         processType*:            LONGINT;
  122.         processSignature*:        Types.OSType;
  123.         processMode*:            LONGINT;
  124.         processLocation*:        Types.Ptr;
  125.         processSize*:            LONGINT;
  126.         processFreeMem*:            LONGINT;
  127.         processLauncher*:        ProcessSerialNumber;
  128.         processLaunchDate*:        LONGINT;
  129.         processActiveTime*:        LONGINT;
  130.         processAppSpec*:            Files.FSSpecPtr;
  131.     END;
  132.  
  133.     ProcessInfoRecPtr* = POINTER TO ProcessInfoRec;
  134.  
  135.  
  136. PROCEDURE LaunchApplication*(LaunchParams: LaunchPBPtr): Types.OSErr;
  137.     (*$IF NOT GENERATINGCFM*)
  138.     INLINE PASCAL $205F, $A9F2, $3E80;
  139.     (*$END*)
  140. PROCEDURE LaunchDeskAccessory*((*CONST*)VAR pFileSpec: Files.FSSpec; pDAName: Types.ConstStr255Param): Types.OSErr;
  141.     (*$IF NOT GENERATINGCFM*)
  142.     INLINE PASCAL $3F3C, $0036, $A88F;
  143.     (*$END*)
  144. PROCEDURE GetCurrentProcess*(VAR PSN: ProcessSerialNumber): Types.OSErr;
  145.     (*$IF NOT GENERATINGCFM*)
  146.     INLINE PASCAL $3F3C, $0037, $A88F;
  147.     (*$END*)
  148. PROCEDURE GetFrontProcess*(VAR PSN: ProcessSerialNumber): Types.OSErr;
  149.     (*$IF NOT GENERATINGCFM*)
  150.     INLINE PASCAL $70FF, $2F00, $3F3C, $0039, $A88F;
  151.     (*$END*)
  152. PROCEDURE GetNextProcess*(VAR PSN: ProcessSerialNumber): Types.OSErr;
  153.     (*$IF NOT GENERATINGCFM*)
  154.     INLINE PASCAL $3F3C, $0038, $A88F;
  155.     (*$END*)
  156. PROCEDURE GetProcessInformation*((*CONST*)VAR PSN: ProcessSerialNumber; VAR info: ProcessInfoRec): Types.OSErr;
  157.     (*$IF NOT GENERATINGCFM*)
  158.     INLINE PASCAL $3F3C, $003A, $A88F;
  159.     (*$END*)
  160. PROCEDURE SetFrontProcess*((*CONST*)VAR PSN: ProcessSerialNumber): Types.OSErr;
  161.     (*$IF NOT GENERATINGCFM*)
  162.     INLINE PASCAL $3F3C, $003B, $A88F;
  163.     (*$END*)
  164. PROCEDURE WakeUpProcess*((*CONST*)VAR PSN: ProcessSerialNumber): Types.OSErr;
  165.     (*$IF NOT GENERATINGCFM*)
  166.     INLINE PASCAL $3F3C, $003C, $A88F;
  167.     (*$END*)
  168. PROCEDURE SameProcess*((*CONST*)VAR PSN1: ProcessSerialNumber; (*CONST*)VAR PSN2: ProcessSerialNumber; VAR result: BOOLEAN): Types.OSErr;
  169.     (*$IF NOT GENERATINGCFM*)
  170.     INLINE PASCAL $3F3C, $003D, $A88F;
  171.     (*$END*)
  172.  
  173. (* $ALIGN RESET*)
  174. (* $POP*)
  175.  
  176.  END Processes.
  177.